草庐IT

C++ 性能 std::array 与 std::vector

全部标签

.net - 从 system::String 转换为 std::string

要将system::String转换为std::string,我使用以下代码:IntPtrp=Marshal::StringToHGlobalAnsi(PORT);stringnewString=static_cast(p.ToPointer());Marshal::FreeHGlobal(p);但是,我拿到代码的地方使用IntPtrp=Marshal::StringToHGlobalAnsi(PORT);char*newString=static_cast(p.ToPointer());Marshal::FreeHGlobal(p);但是出于某种原因,如果我执行char*版本,我会在

.net - 您可以从应用程序更改视觉效果性能设置吗?

我正在修改在以下位置找到的注册表值:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects。出于我的目的,它可以存储DWORD值0、1、2。这些值对应于Windows7中性能选项下的视觉效果单选按钮;分别“让Windows选择最适合我的计算机”、“调整为最佳外观”和“调整为最佳性能”。如果您使用实际的“性能选项”屏幕并进行更改并单击应用,Windows中的视觉设置将按预期重新加载。如果您以编程方式更改该值,它不会执行任何操作。有没有办法在代码中实现这一点?

windows性能记录器记录具体过程

使用WindowsPerformanceRecorder,是否可以根据单个进程的tracing生成ETL文件?为系统中的所有进程生成的ETL文件生成以GB为单位的ETL文件,时间间隔短至几分钟。 最佳答案 ETW(内核事件)跟踪是系统范围的并捕获所有进程。 关于windows性能记录器记录具体过程,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14963257/

windows - 带有 std::bind 的代码未编译,错误 C2780:需要 6 个参数 - 提供 8 个

考虑代码:#include#include#includeclassCFileOperationWatcher{public:CFileOperationWatcher(){}virtualvoidonProgressChanged(uint64_tsizeProcessed,uint64_ttotalSize,size_tnumFilesProcessed,size_ttotalNumFiles,uint64_tcurrentFileSizeProcessed,uint64_tcurrentFileSize){}virtual~CFileOperationWatcher(){}voi

windows - 提高 Windows 批处理脚本性能

我想从文本文件中删除特定的行,使用这个命令:for/f"delims="%%din('"dir/a/b/s|sort"')dotype%%d|findstr/V>它正在运行,但非常非常慢。如何改进命令或使其在多核中使用? 最佳答案 在您发布的命令行中,最慢的部分可能是findstr、sort和cmd的管道管理。findstr是大热门。它需要读取每个整个文件,但这是练习的全部原因。如果您不需要正则表达式支持,您可以通过使用文字搜索字符串和/L参数禁用正则表达式支持来稍微加快速度。如果可能,请尝试预过滤您的文件列表以减少findstr必

c++ - 使用 std::chrono 库调整应用程序 fps 但出现奇怪的行为

我使用std::chronoc++库编写了下面的代码,我想做的是修复应用程序的FPS在60上,但我得到50FPS,肯定不是性能问题因为我什么都没有计算。但这肯定是无效用法或错误。TARGET_FPS宏设置为目标FPS我想得到,然后是控制台窗口显示真实的实际FPS,以下几行显示我设置的值TARGET_FPS到,并且每个都与最终的FPS相关联.TARGET_FPS---->FPS60----->5090----->50100----->1001000----->10010000----->100whatever----->100即使我定义了TARGET_FPS到1000000000我得到1

c++ - 我正在使用 std::bitset 并尝试创建两个大小为 100,000,000,000 的数组 std::bitset

我正在使用std::bitset并尝试创建两个大小为100,000,000,000的数组std::bitset。结果,程序只占了我298MB的RAM,但必须占~24GB。我有32GBRAM,现在有26GB可用。当我为x86构建代码时,它编译并可以启动,但对于x64,它显示以下内容:错误C2148:数组总大小不得超过0x7fffffff字节。如何修复它并且不减小bitset数组的大小?我尝试制作2个全局数组。另外,我在Microsoftvisualstudio->project->name_projectproperties->configurationproperties->linke

C++ 应用即高性能服务

我需要提供一个C++应用程序作为服务。服务的客户端和服务可以在同一台机器上,也可以根据负载分布在不同的机器上。此应用程序将~2KB字符串作为输入,并在经过一些处理后返回几乎相似大小的字符串。客户的周转时间应该非常快。实现这一点的最佳机制是什么? 最佳答案 鉴于输入大小小于本地主机上的内存页面宽度,任何机制都不太可能在这里产生可测量的差异。对于远程机器,网络延迟可能是瓶颈,而不是客户端/服务器问题。 关于C++应用即高性能服务,我们在StackOverflow上找到一个类似的问题:

windows - Windows 应用程序的性能分析。 Visual Studio Profiler 的更好替代品?

我对用于性能分析的VisualStudioProfiler印象深刻。快速满足我的目的且易于使用。我只是想知道visualstudioprofiler中的注意事项。是否有更好的Windows应用程序分析器可以更好地应对这些警告? 最佳答案 从积极的方面来说,没有人像微软一样制作出色的应用程序。VisualStudio是一款出色的产品,其探查器具有这些属性。另一方面,也有一些注意事项(其他分析器也有)。采样模式下,线程阻塞时不采样。因此,它对无关的I/O、套接字调用等视而不见。这是prof和gprof早期的一个属性,它们最初是作为PC采

c++ - 与 VS2013 相比,gcc 4.7.2 中的 std::map 实现效率非常低?

有人可以帮我理解std::map容器是如何实现的吗?我有一个包含原子成员的类,我不需要调用复制构造函数,所以我使用c++11delete运算符来抑制复制构造函数的隐式生成。MyCalss(constMyClass&a)=delete;这在我的Windows构建中运行良好,但是在Linux中,我收到一条错误消息,通知我std::map类的[]运算符正在尝试调用已删除的函数。在WindowsVS2013和LinuxGCC4.7.xmap实现之间似乎存在重大差异。这促使我做了一个关于如何将对象插入map的实验。我写了这个小示例程序:#include#include#include#inclu